package baseObjectDecorator;

import baseObject.IBall;
import baseObject.IBrickBreaker;
import baseObject.IBrickBreakerObserver;
import baseObject.IPaddle;
import baseObject.IWall;

public class BrickBreakerDecorator implements IBrickBreaker{
	private IBrickBreaker delegate;


	@Override
	public void init(int xMax, int yMax) {
		this.delegate.init(xMax, yMax);
		
	}
	
	public BrickBreakerDecorator(IBrickBreaker delegate){
		this.delegate = delegate;
	}
	
	public void addIBrickBreakerObserver(
			IBrickBreakerObserver brickBreakerObserver) {
		this.delegate.addIBrickBreakerObserver(brickBreakerObserver);	
	}
	
	public void notifyEnvironmentChange() {
		this.delegate.notifyEnvironmentChange();
	}
	
	public int getXMAX() {
		return this.delegate.getXMAX();
	}

	public int getYMAX() {	
		return this.delegate.getXMAX();
	}
	
	public TFinished isFinished() {	
		return this.delegate.isFinished();
	}
	
	public TMove getPlayerDirection() {	
		return this.delegate.getPlayerDirection();
	}
	
	public IPaddle getPaddle() {	
		return this.delegate.getPaddle();
	}
	
	public IWall getWall() {		
		return this.delegate.getWall();
	}

	public IBall getBall() {	
		return this.delegate.getBall();
	}
	
	public void calculateStep() {
		this.delegate.calculateStep();
	}
	
	public void movePaddle(TMove tMove) {	
		this.delegate.movePaddle(tMove);
	}
	
	public void moveBall() {	
		this.delegate.moveBall();
	}

	public void initLevelOne() {	
		this.delegate.initLevelOne();
	}

	public void setPlayerDirection(TMove direction) {
		this.delegate.setPlayerDirection(direction);
	}

}
